// 使用开发测试环境变量
const BASE_URL_TEST = import.meta.env.VITE_BASE_PATH

// axios - 使用前安装一下：yarn add axios
import axios from 'axios'

// 角色分页列表
export const getRolesPage = async () => {
  try {
    // const response = await fetch(BASE_URL_TEST + '/roles/page?pageNum=1&pageSize=10', {
    //   method: 'GET'
    // })
    // return response.json()

    // await语法糖获取数据；需要设置query参数
    const response = await axios.get(BASE_URL_TEST + '/roles/page', {
      params: {
        pageNum: 1,
        pageSize: 10
      }
    })
    // axios 可以直接获取数据，不需要.json
    return response.data
  } catch (error) {
    console.log('error:', error)
  }
}

// 新增角色
export const postRoles = async () => {
  const myHeaders = new Headers()
  // 设置请求携带的数据格式是 JSON 格式
  myHeaders.append('Content-Type', 'application/json')
  // 添加的 自定义的 header 信息（通常用户使用的秘钥会放到这里，后端接受之后用于判断用户是否登录）
  myHeaders.append('Authorization', '2f68dbbf-519d-4f01-9636-e2421b68f379')

  // 数据库是软删除，即将删除的id（delete）改为1,故新增相同角色是不成功
  const newRole = {
    // 角色ID
    id: 22,
    // 角色名称
    name: '故乡的樱花开了思密达',
    // 角色编码
    code: '22',
    // 排序
    sort: 22,
    // 角色状态（1-正常；0-停用）
    status: 1,
    // 数据权限（0：全部数据，1：部门及子部门数据，2：本部门数据，3：本人数据
    dataScope: 1
  }

  // fetch 配置项
  const requestOptions = {
    // 请求的方式 GET POST DELETE PATCH PUT
    method: 'POST',
    // 设置请求头信息
    headers: myHeaders,
    // 设置请求携带的数据
    body: newRole
  }

  try {
    const response = await axios.post(BASE_URL_TEST + '/roles', requestOptions)
    console.log(response)
  } catch (error) {
    console.log('error:', error)
  }
}

// 修改角色
export const putRolesRoleId = async () => {
  const myHeaders = new Headers()
  myHeaders.append('Content-Type', 'application/json')

  const changedRole = {
    id: 22,
    name: '霍君桑之重生大计(。_。)',
    code: '91',
    sort: 8,
    status: 1,
    dataScope: 11
  }

  const requestOptions = {
    method: 'PUT',
    headers: myHeaders,
    body: changedRole
  }

  try {
    const response = await axios.put(BASE_URL_TEST + '/roles/22', requestOptions)
    console.log(response)
    return response.data
  } catch (error) {
    console.log('error', error)
  }
}

// 删除角色
export const deleteRolesIds = async () => {
  // const myHeaders = new Headers()
  // myHeaders.append('User-Agent', 'Apifox/1.0.0 (https://apifox.com)')
  // 如果报错，将myHeader创建为普通对象即可
  const myHeaders = {
    'User-Agent': 'Apifox/1.0.0 (https://apifox.com)'
  };
  const requestOptions = {
    headers: myHeaders
  }

  try {
    const response = await axios.delete(BASE_URL_TEST + '/roles/22', requestOptions)
    return response.data
    console.log(response)
  } catch (error) {
    console.log('error:', error)
  }
}

// 修改角色状态
export const patchRolesRoleIdStatus = async () => {
  const myHeaders = new Headers()
  myHeaders.append('User-Agent', 'Apifox/1.0.0 (https://apifox.com)')

  const requestOptions = {
    method: 'PATCH',
    headers: myHeaders
  }

  try {
    const response = await axios.patch(
      BASE_URL_TEST + '/roles/9898/status?status=0',
      requestOptions
    )
    return response.data
    console.log(response)
  } catch (error) {
    console.log('error:', error)
  }
}
